﻿using System;
using System.Reflection;

class Program
{
    static void Main()
    {
        // 获取Person类型的Type对象
        Type personType = typeof(Person);

        // 使用默认构造函数创建Person类的实例
        ConstructorInfo defaultConstructor = personType.GetConstructor(Type.EmptyTypes);
        if (defaultConstructor != null)
        {
            Person person1 = (Person)defaultConstructor.Invoke(null);
            person1.PrintInfo(); // 输出: Name: Unknown, Age: 0
        }

        // 使用接收name和age的构造函数创建Person类的实例
        ConstructorInfo parameterizedConstructor = personType.GetConstructor(new Type[] { typeof(string), typeof(int) });
        if (parameterizedConstructor != null)
        {
            Person person2 = (Person)parameterizedConstructor.Invoke(new object[] { "Alice", 18 });
            person2.PrintInfo(); // 输出: Name: Alice, Age: 18
        }
    }
}
